<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=1, initial-scale=1.0" />
  <title>Document</title>
</head>

<body>
  <script>
    // 需求：
    // 1. 把下面的数据结构
    let array = [
      {
        id: 1,
        pid: 0,
        child: [{ id: 2, pid: 1, child: [{ id: 3, pid: 2 }] }],
      },
      {
        id: 4,
        pid: 0,
        child: [{ id: 5, pid: 4, child: [{ id: 6, pid: 5 }] }],
      },
    ]
    // 变成下面的样子 → 把array数组的对应数据取出来保存在newArray数组中，newArray的结果如下：
    /*
     [
       { id: 3, pid: 2 },
       { id: 2, pid: 1 },
       { id: 1, pid: 0 },
       { id: 6, pid: 5 },
       { id: 5, pid: 4 },
       { id: 4, pid: 0 },
     ]
    */
    // 提示 使用forEach和for in

    let newarr = []
    for (const [key, item] of array.entries()) {
      for (const valueName in item) {
        if (item[valueName] instanceof Array) {
          // console.log(item[valueName]);
          for (const [index, items] of item[valueName].entries()) {
            // console.log(item[valueName][index]);
            for (const valuename in item[valueName][index]) {
              // console.log(item[valueName][index][valuename])
              if (item[valueName][index][valuename] instanceof Array) {
                // console.log(item[valueName][index][valuename]);
                for (const indexs of item[valueName][index][valuename]) {
                  // console.log(indexs);
                  newarr.push(indexs)
                }
                delete item[valueName][index][valuename]
              }
              // newarr.push([valueName][index][valuename])
            }
            newarr.push(item[valueName][index])
          }
          delete item[valueName]
        }
      }
      newarr.push(item)
    }
    console.log(newarr)
  </script>
</body>

</html>